﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Ferreteria.Forms.GestionClientes;

namespace Ferreteria.Forms
{
    public partial class frmCuentas : Form
    {
        DisancoEntities context;
        int clienteId;
        //Clientes cliente;

        public frmCuentas(int id)
        {
            InitializeComponent();

            this.clienteId = id;

            CargarCuentas();
        }

        private void btnBuscarCliente_Click(object sender, EventArgs e)
        {
            
            //int dni = Convert.ToInt32(txbDNI.Text);
            

            //lblNombre.Text = cliente.cliente_nombre;
            //this.clienteId = cliente.cliente_id;

            
        }

        private void btnRegistrarPago_Click(object sender, EventArgs e)
        {
            var nuevoPago = new frmRegistrarPago(this.clienteId);
            nuevoPago.Show();
        }

        private void CargarCuentas()
        {
            context = new DisancoEntities();
            var cliente = context.Clientes.FirstOrDefault(cli => cli.cliente_id == this.clienteId);

            lblNombre.Text = cliente.cliente_nombre;
            this.Text = "Estado de cuenta de " + cliente.cliente_nombre;

            //Cargar lista de deudas y cuentas pagadas
            DataTable dtPendientes = new DataTable();
            dtPendientes.Columns.Add("Fecha");
            dtPendientes.Columns.Add("Monto");
            dtPendientes.Columns.Add("Pagado");

            DataTable dtPagados = new DataTable();
            dtPagados.Columns.Add("Fecha");
            dtPagados.Columns.Add("Monto");
            dtPagados.Columns.Add("Pagado");

            foreach (var cuenta in cliente.Cuentas)
            {
                if (cuenta.cuenta_pagado < cuenta.cuenta_monto)
                {
                    DataRow drPendiente = dtPendientes.NewRow();
                    drPendiente["Fecha"] = cuenta.cuenta_fecha.ToShortDateString();
                    drPendiente["Monto"] = cuenta.cuenta_monto;
                    drPendiente["Pagado"] = cuenta.cuenta_pagado;

                    dtPendientes.Rows.Add(drPendiente);
                    dgvPendientes.DataSource = dtPendientes;
                }
                else
                {
                    DataRow drPagado = dtPagados.NewRow();
                    drPagado["Fecha"] = cuenta.cuenta_fecha.ToShortDateString();
                    drPagado["Monto"] = cuenta.cuenta_monto;
                    drPagado["Pagado"] = cuenta.cuenta_pagado;

                    dtPagados.Rows.Add(drPagado);
                    dgvPagadas.DataSource = dtPagados;
                }
            }

            //Cargar lista de pagos
            DataTable dtPagos = new DataTable();
            dtPagos.Columns.Add("Fecha");
            dtPagos.Columns.Add("Tipo");
            dtPagos.Columns.Add("Monto");
            dtPagos.Columns.Add("Banco");
            dtPagos.Columns.Add("Nro. de cheque");

            foreach (var pago in cliente.Pagos)
            {
                DataRow drPago = dtPagos.NewRow();

                drPago["Fecha"] = pago.pago_fecha.ToShortDateString();
                drPago["Tipo"] = pago.pago_tipo;
                drPago["Monto"] = pago.pago_monto;
                drPago["Banco"] = pago.pago_cheque_banco;
                drPago["Nro. de cheque"] = pago.pago_cheque_nro;

                dtPagos.Rows.Add(drPago);
            }

            dgvPagos.DataSource = dtPagos;

            context.Dispose();
        }
    }
}
